$(function() {
    buttenControl();
    //菜单类型下拉列表
    $.get(projectPath + '/base/constss/list?code=1000000011', function (r) {
        var data = r.data;
        var value = '<option value="">--请选择--</option>';
        $(data).each(function(index,r){
            value += '<option value="'+r.constvalue+'">'+r.constname+'</option>';
        })
        $("#type").append(value);
    });
    //新增页面父级下拉菜单
    qryParentSelect();
    $('#tb_ads').bootstrapTable({
        method: 'GET',                      //请求方式（*）
        // url: 'list.json',         //请求后台的URL（*）
        url:projectPath + "/base/menus/list",
        contentType: 'application/x-www-form-urlencoded',
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: true,                     //是否启用排序
        sortOrder: "desc",                   //排序方式
        search:true,
        queryParams: menuQueryParams,//传递参数（*）
        sidePagination: "client",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10, 20,50],        //可供选择的每页的行数（*）
        strictSearch: false,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //显示刷新按钮
        showToggle: true,
        minimumCountColumns: 2,             //最少允许的列数
        singleSelect:true,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        sortName:"createdat",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'center', formatter: function (value, row, index) {
                return index + 1;
            }},
            {field: 'uuid', title: '主键', align: 'center', visible:false},
            {field: 'name', title: '菜单名称',sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'parentName', title: '父级菜单',sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='wwhite-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'url', title: '链接地址',sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='wwhite-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'ordernum', title: '权重',sortable:true, align: 'center',formatter: function (value, row, index) {
                if(value == null){
                    value = "/"
                }
                return "<div style='wwhite-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'perms', title: '拥有权限',sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='wwhite-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'type', title: '菜单类型',sortable:true, align: 'center',formatter: function (value, row, index) {
                if(value == "0"){
                    value = "目录";
                }else if(value == "1"){
                    value = "菜单"
                }else{
                    value = "按钮";
                };
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'icon', title: '菜单图标', sortable:true, align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'createdat', title: '创建时间', sortable:true,align: 'center',formatter: function (value, row, index) {
                if(value == "" || value == null){
                    value="";
                }else{
                    value = getLocalTime(value);
                };
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
        ],
        responseHandler: function (data) {
            return data.data;
        }
    });
    // 查询
    $("#btnQuery").click(function(){
        $('#tb_ads').bootstrapTable('refresh', {url:  projectPath + "/base/menus/list"});
    });
    // 置空
    $("#btnEmpty").click(function () {
        $("#menuName").val("");
    });

});

function menuQueryParams() {
    var filterinfo = {};
    if($("#menuName").val() != ""){
        filterinfo.menuName = $("#menuName").val().trim();
    }
    return filterinfo;
};

$("#btnDelete").on("click",function(){
    var ids = getSelectedDeleteParams();
    if (ids != '' && ids != null) {
        layerAlert.confirmMessage("确定要删除?",projectPath + "/base/menus/del?uuid="+ids, function(data){
            if(data.code == "0"){
                layerAlert.successMessage("操作成功","");
            }else{
                layerAlert.errorMessage("出错了");
            };
        });
    }else{
        layerAlert.errorMessage("您的选择为空");
    }
});

$("#name").on("change",function () {
    $.ajax({
        url: projectPath + '/base/menus/qryMenuCountByName?name=' + $("#name").val(),
        type: 'POST',
        dataType: 'json',
        success:function(data){
            if(data.data != 0){
                layerAlert.warnMessage("该名称已被占用,请重新填写");
                $("#name").val("");
            }
        },
        error:function(){
            layerAlert.errorMessage("数据错误");
        }
    })
})



// 新增
$("#btnAdd").on('click',function () {
    menuupdate();
    layer.open({
        type: 1,
        title: "新建菜单",
        shadeClose: true,
        shade: 0.3,
        move: true,
        area: ['90%', '60%'],
        skin: 'layui-layer-rims',
        content: $(".addMenu"),
        closeBtn: 1,
        btn: ['确定', '关闭'],
        yes: function () {
            var bootstrapValidator = $(".menuupdate").data('bootstrapValidator');
            bootstrapValidator.validate();
            if(!bootstrapValidator.isValid()){
                layerAlert.errorMessage("请填写信息");
                return;
            };
            var dataParam = {
                menuName: $("#name").val(), // 菜单名称
                parentuuid: $("#parentSelect").val(), // 菜单父级名称
                url: $("#url").val(), //链接
                perms: $("#perms").val(), // 授权
                icon: $("#icon").val(),//图标
                orderNum:$("#ordernum").val(),
                type: $("#type").val()//类型
            };
            debugger;
            if(dataParam.menuName == ''){
                layerAlert.warnMessage("请填写菜单名称!");
                return;
            }
            $.ajax({
                url: projectPath + '/base/menus/insert',
                type: 'POST',
                dataType: 'json',
                data: dataParam,
                success: function (data) {
                    if (data.code == "0") {
                        layerAlert.successMessage("添加成功", "");
                    } else {
                        layerAlert.errorMessage("添加失败");
                    }
                },
                error: function () {
                    layerAlert.errorMessage("错误");
                }
            });
            menuupdate();
            $(".menuupdate").data('bootstrapValidator').destroy();
            $('.menuupdate').data('bootstrapValidator', null);
        },
        btn2:function () {
            menuupdate();
            $(".menuupdate").data('bootstrapValidator').destroy();
            $('.menuupdate').data('bootstrapValidator', null);
        },
        cancel:function () {
            menuupdate();
            $(".menuupdate").data('bootstrapValidator').destroy();
            $('.menuupdate').data('bootstrapValidator', null);
        }
    });
});
// 修改
$("#brnRevise").click(function(){
    menuupdate();
    var ids = getSelectedDeleteParams();
    if (ids != '' && ids != null) {
        $.post(projectPath + '/base/menus/qryByUUid?id='+ids, function (data) {
            $("#type").val(data.data.type)//类型
            qryParentSelect();
            $("#name").val(data.data.name); // 菜单名称
            $("#url").val(data.data.url); //链接
            $("#perms").val(data.data.perms); // 授权
            $("#ordernum").val(data.data.ordernum);
            $("#icon").val(data.data.icon);//图标
            $("#uuid").val(ids);
            $("#parentSelect").val(data.data.parentuuid) // 菜单父级名称
        });
        layer.open({
            type: 1,
            title: "修改菜单",
            shadeClose: true,
            shade: 0.3,
            move :true,
            area: ['90%', '60%'],
            skin: 'layui-layer-rims',
            content: $(".addMenu"),
            closeBtn:1,
            shadeClose:false,
            btn:['确定','关闭'],
            yes:function () {
                var bootstrapValidator = $(".menuupdate").data('bootstrapValidator');
                bootstrapValidator.validate();
                if(!bootstrapValidator.isValid()){
                    layerAlert.errorMessage("请填写信息");
                    return;
                };
                var dataParam = {
                    uuid: ids, //uuid;
                    menuName: $("#name").val(), // 菜单名称
                    parentuuid: $("#parentSelect").val(), // 菜单父级名称
                    url: $("#url").val(), //链接
                    perms: $("#perms").val(), // 授权
                    orderNum:$("#ordernum").val(),
                    icon: $("#icon").val(),//图标
                    type: $("#type").val()//类型
                };
                if(dataParam.menuName == ''){
                    layerAlert.warnMessage("请填写菜单名称!");
                    return;
                }
                $.ajax({
                    url: projectPath + '/base/menus/update',
                    type: 'POST',
                    sync:false,
                    dataType: 'json',
                    data: dataParam,
                    success: function (data) {
                        if (data.code == "0") {
                            layerAlert.successMessage("修改成功", "");
                        } else {
                            layerAlert.errorMessage("添加失败");
                        }
                    },
                    error: function () {
                        layerAlert.errorMessage("错误");
                    }
                });
                menuupdate();
                $(".menuupdate").data('bootstrapValidator').destroy();
                $('.menuupdate').data('bootstrapValidator', null);
            },
            btn2:function () {
                menuupdate();
                $(".menuupdate").data('bootstrapValidator').destroy();
                $('.menuupdate').data('bootstrapValidator', null);
            },
            cancel:function () {
                menuupdate();
                $(".menuupdate").data('bootstrapValidator').destroy();
                $('.menuupdate').data('bootstrapValidator', null);
            }
        });
    } else {
        layerAlert.errorMessage("您的选择为空");
    }
});

//新增修改页面父级下拉菜单
function qryParentSelect() {
    $("#parentSelect").empty();
    var type = $("#type").val();
    if(type == "" || type == null){
        $('#parentSelect').append('<option value="">请先选择菜单类型</option>');
    }else if(type == 0){
        $('#parentSelect').append('<option value=""></option>');
    }else{
        $.ajax({
            url:projectPath + '/base/menus/qryPrimaryMenu?type='+type,
            type:'POST',
            async:false,
            dateType:'json',
            success:function (data) {
                var obj = data.data;
                $('#parentSelect').append('<option value="">--请选择--</option>');
                $.each(obj, function (index, item) {
                    $('#parentSelect').append('<option value="' + item.uuid + '">' + item.name + '</option>')
                })
            },
            error:function () {
                layerAlert.errorMessage("网络异常!");
            }
        })
    };
}

// 提交修改验证
function menuupdate(){
    $(".menuupdate").bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            //valid: 'glyphicon glyphicon-ok',
            //invalid: 'glyphicon glyphicon-remove',
            //validating: 'glyphicon glyphicon-refresh'
        },
        fields:{
            /*parentSelect:{
                validators:{
                    notEmpty: {
                        message: '请选择父级菜单'
                    }
                },
            },*/
            type:{
                validators:{
                    notEmpty: {
                        message: '请填写菜单类型'
                    }
                },
            },
            name:{
                validators:{
                    notEmpty: {
                        message: '请填写菜单名称'
                    }
                },
            }/*,
            url: {
                validators: {
                    notEmpty: {
                        message: '请填写链接地址'
                    },
                    lback:{
                        message: '请填写链接地址',
                        callback: function check(value, validator,$field){
                                if($("#parentSelect").val() != ""){
                                    return false;
                                }
                            return true;
                        }
                    }
                }
            }*/
        }
    });
};

function addFile(id,name,meg){
    $("#" + id).bootstrapValidator("addField", name, {
        validators: {
            notEmpty : {
                message : meg
            }
        }
    });
}
function removeFile(id,name) {
    //如果父类列表或者为按钮时不进行验证
    if($("#parentSelect").val() != "" || $("#type").val() == 2){
        $("#" + id).bootstrapValidator('removeField',name);
    }
}
/**
 * zhangYiHang 18.3.20
 * 页面按钮控制
 * @constructor
 */
function buttenControl() {
    var urls = paramUrlByButten();
    for (var i in urls){
        if('update' == urls[i]){
            $("#brnRevise").show();
        } else if('insert' == urls[i]){
            $("#btnAdd").show();
        }else if('delete' == urls[i]){
            $("#btnDelete").show()
        }
    }
}